/**
 * LeetCode198：打家劫舍
 * 一列房屋中放有一定的现金，如果进入相邻两间房屋，会触发警报
 * 求在不触发警报的情况下最多偷取多少现金
 */

/**
 * @description F(k) = max(F(k-1),F(k-2)+A(k))
 * @description 从前k个房屋中偷取到的最大金额，相当于第k个房屋与前k-2个房屋中能获取到的最大金额，或者前k-1个房间中获取的最大金额
 * @param {number[]} nums
 * @return {number}
 */
var rob = function (nums){
    if (nums.length === 0){ return 0; }
    let dp0 = 0;
    let dp1 = nums[0];
    for (let i = 2; i <= nums.length; i++) {
        const dp2 = Math.max(nums[i-1] + dp0, dp1);
        dp0 = dp1;
        dp1 = dp2;
    }
    return dp1;
}

//时间复杂度：O(n)
//空间复杂度：O(1)